//---------------------------------------------------------------------------

#ifndef OptimiseurNumeriqueReelH
#define OptimiseurNumeriqueReelH

#ifndef SelecteurOptimiseurReelH
#include "SelecteurOptimiseurReel.h"
#endif

//---------------------------------------------------------------------------
class OptimiseurNumeriqueReel : public SelecteurOptimiseurReel {
public :
	OptimiseurNumeriqueReel (int nbParams, double inertieUp, double inertieDown, double min, double max, double coefGeom = 1.0);
  ~OptimiseurNumeriqueReel (void);
  double GetValeurOptimum (void);
  //inline double GetActivatedValue (void) {return ActivatedValue;}
	void SuccessDifferentiel (double result, double gain);
	void Reguler (double result, double objectif);
	void Maximiser (double result);

	void SetMinMax (double min, double max);
  virtual void Reinit (void);
  virtual double GetPctMethode (int m);
  inline double GetMax (void) {return Max;}
	void ShiftBy (int delta);
  void ReduireAuMaximum(void);

protected :
	double StartMin;
  double StartMax;
	double Min;
  double Max;
  double ActivatedValue;
  double CoefGeom;

  void CenterOnClasse (double c);
};
#endif
